package com.ruoyi.system.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class MemberListDTO  {

    @ApiModelProperty(value = "会员姓名", required = true, example = "张三")
    private String memberName;

    @ApiModelProperty(value = "会员手机号码（唯一约束）", required = true, example = "13800000000")
    private String phone;

    @ApiModelProperty(value = "会员卡号（唯一标识，如实体卡号或虚拟卡号）", example = "CARD123456789")
    private String memberCardNo;

    @ApiModelProperty(value = "会员等级（GOLD_80: 黄金会员8折，REGULAR: 普通会员）", allowableValues = "GOLD_80, REGULAR", example = "REGULAR")
    private String memberLevelId;

    @ApiModelProperty(value = "会员状态（ACTIVE: 正常，INACTIVE: 停用，EXPIRED: 已过期）", allowableValues = "ACTIVE, INACTIVE, EXPIRED", example = "ACTIVE")
    private String memberStatus;

    @ApiModelProperty(value = "会员性别（MALE: 男，FEMALE: 女，UNKNOWN: 未知）", allowableValues = "MALE, FEMALE, UNKNOWN", example = "UNKNOWN")
    private String gender;

    @ApiModelProperty(value = "推荐会员ID（关联会员列表表的id，外键）", example = "1")
    private Integer referrerId;

    @ApiModelProperty(value = "注册门店名称", example = "旗舰店")
    private String registerStore;

    @ApiModelProperty(value = "操作员工姓名（记录创建或修改的员工）", example = "李四")
    private String operatorStaff;


    @ApiModelProperty("过期开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expirationStartTime;

    @ApiModelProperty("过期结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expirationEndTime;

    @ApiModelProperty("创建开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createStartTime;

    @ApiModelProperty("创建结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createEndTime;

    @ApiModelProperty("会员生日开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthdayStartTime;

    @ApiModelProperty("会员生日结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthdayEndTime;

    @ApiModelProperty("最后消费开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastConsumeStartTime;

    @ApiModelProperty("最后消费结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastConsumeEndTime;

    @ApiModelProperty("累计消费起始额")
    private BigDecimal totalConsumeStartAmount;

    @ApiModelProperty("累计消费结束额")
    private BigDecimal totalConsumeEndAmount;

    @ApiModelProperty("累计时长起始额（小时）")
    private BigDecimal totalDurationStartHour;

    @ApiModelProperty("累计时长结束额（小时）")
    private BigDecimal totalDurationEndHour;

    @ApiModelProperty("最近未消费天数")
    private Integer lastUnconsumedDays;

    /**
     * 当前页
     */
    private Integer pageNum =1 ;

    /**
     * 每页条数
     */
    private Integer pageSize =10;
}
